#!/usr/bin/php
<inetnums>
<?php

function write_object($tag,$obj){
 echo ' <'.$tag.'>'."\n";
 foreach($obj as $k=>$v){
  echo '  <'.$k.'>'.htmlentities($v).'</'.$k.'>'."\n";
 }
 echo ' </'.$tag.'>'."\n";
}

if(isset($_SERVER['argv'][1])){
 list($filter_key,$filter_val)=explode('=',$_SERVER['argv'][1],2);
}else{
 $filter_key=FALSE;
}

$inetnum=array();
$empty=TRUE;
$count=0;
while(($line=fgets(STDIN))!==FALSE){
 $line=rtrim($line);
 if((strlen($line)===0) or ($line[0]=='%') or ($line[0]=='#')){
  if((!$empty)){
   if(($filter_key===FALSE) or ($inetnum[$filter_key]==$filter_val)){
    write_object('inetnum',$inetnum);
    $count++;
   }
   $inetnum=array();
   $empty=TRUE;
  }
 }else{
  $empty=FALSE;
  @list($key,$val)=explode(':',$line,2);
  if($key==='inetnum'){
   list($ipstart,$ipend)=explode("-",$val);
   $inetnum['ip_start']=trim($ipstart);
   $inetnum['ip_end']=trim($ipend);
   if(!$ipend){
    $ipend=trim(fgets(STDIN)," -\r\n");
   }
  }else{
   if(isset($inetnum[$key])){
    $inetnum[$key].="\n".ltrim($val);
   }else{
    $inetnum[$key]=ltrim($val);
   }
  }
 }
}
fprintf(STDERR,'%d records written'."\n",$count);
?>
</inetnums>